using System;
using System.Data;
using System.Data.SqlClient;
using SystemFrameworks;
using Common;
using DataAccess;
using Microsoft.ApplicationBlocks.Data;

namespace BusinessRules
{
    public class SigPnd
    {

        private const String PND_ID_PARAM = "@PND_ID";

        
        
        
        private string _CadenaConexion;

        public string CadenaConexion
        {
            get { return _CadenaConexion; }
            set { _CadenaConexion = value; }
        }

        public SigPnd(string strCadenaConecxion)
        {
            CadenaConexion = strCadenaConecxion;
        }

        public SigPndData ConsultarPndId(Decimal decPnlId)
        {
            SigPndData objSigPndData = new SigPndData();
            SqlParameter param1 = new SqlParameter(PND_ID_PARAM, decPnlId);
            SqlParameter[] parameters = { param1 };
            Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataTable(CadenaConexion, CommandType.StoredProcedure, "PAS_CONSULTAR_SIG_PND_PND_ID", objSigPndData, parameters);
            return objSigPndData;
        }

        public SigPndData Buscar()
        {
            SigPndData objSigPndData = new SigPndData();
            Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataTable(CadenaConexion, CommandType.StoredProcedure, "PAS_BUSCAR_SIG_PND", objSigPndData);
            return objSigPndData;
        }
        //public SigPlanAccionData ConsultarAno()
        //{
        //    SigPlanAccionData objSigPlanAccionData = new SigPlanAccionData();

        //    Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataTable(CadenaConexion, CommandType.StoredProcedure, "PAS_BUSCAR_SIG_PLAN_ACCION_ANO", objSigPlanAccionData);

        //    return objSigPlanAccionData;
        //}
        //public SigTipoClasificacionData BuscarClasificacion()
        //{
        //    SigTipoClasificacionData objSigTipoClasificacionData = new SigTipoClasificacionData();
        //    Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataTable(CadenaConexion, CommandType.StoredProcedure, "PAS_BUSCAR_SIG_TIPO_CLASIFICACION", objSigTipoClasificacionData);
        //    return objSigTipoClasificacionData;
        //}

        //#region ActualizarRubro

        //public int ActualizarRubro(SigPlanAccionData objDS,  params SqlTransaction[] objTransaction)
        //{
        //    DataTable objDT = objDS;
        //    int intReturn = 0;
        //    try
        //    {
        //        foreach (DataRow objRow in objDT.Rows)
        //        {
                    
        //                    SqlParameter param0 = new SqlParameter(PLN_ID_PARAM, objRow[SigPlanAccionData.PLN_ID_FIELD]);
        //                    SqlParameter param1 = new SqlParameter(PLN_NOMBRE_PARAM, objRow[SigPlanAccionData.PLN_NOMBRE_FIELD]);
        //                    SqlParameter param2 = new SqlParameter(PLN_CODIGO_BPIN_PARAM, objRow[SigPlanAccionData.PLN_CODIGO_BPIN_FIELD]);
        //                    SqlParameter param3 = new SqlParameter(PLN_CODIGO_PRESUPUESTAL_PARAM, objRow[SigPlanAccionData.PLN_CODIGO_PRESUPUESTAL_FIELD]);
        //                    SqlParameter param4 = new SqlParameter(PLN_VALOR_APROPIACION_PARAM, objRow[SigPlanAccionData.PLN_VALOR_APROPIACION_FIELD]);
        //                    SqlParameter param5 = new SqlParameter(PLN_OBJETIVO_PARAM, objRow[SigPlanAccionData.PLN_OBJETIVO_FIELD]);
        //                    SqlParameter param6 = new SqlParameter(PLN_DESCRIPCION_PARAM, objRow[SigPlanAccionData.PLN_DESCRIPCION_FIELD]);
        //                    SqlParameter param7 = new SqlParameter(PLN_PROBLEMA_PARAM, objRow[SigPlanAccionData.PLN_PROBLEMA_FIELD]);
        //                    SqlParameter param8 = new SqlParameter(DEP_ID_PARAM, objRow[SigPlanAccionData.DEP_ID_FIELD]);
        //                    SqlParameter param9 = new SqlParameter(CLS_ID_PARAM, objRow[SigPlanAccionData.CLS_ID_FIELD]);
        //                    SqlParameter param10 = new SqlParameter(PLN_ANO_PARAM, objRow[SigPlanAccionData.PLN_ANO_FIELD]);
        //                    SqlParameter[] parameters = {param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, 
        //                                                 param10};
        //                    if (objTransaction.Length == 0)
        //                    {
        //                        intReturn = SqlHelper.ExecuteNonQuery(CadenaConexion, CommandType.StoredProcedure,
        //                                                              "PAS_ACTUALIZAR_SIG_PLAN_ACCION", parameters);
        //                    }
        //                    else
        //                    {
        //                        intReturn = SqlHelper.ExecuteNonQuery(objTransaction[0], CommandType.StoredProcedure,
        //                                                              "PAS_ACTUALIZAR_SIG_PLAN_ACCION", parameters);
        //                    }
                           
                    
        //        }

        //    }
        //    catch (SqlException sqlEx)
        //    {
        //        throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "Usuarios"), sqlEx);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", "Usuarios"), ex);
        //    }

        //    return intReturn;
        //}

        //#endregion

        //public int AdicionarRubro(SigPlanAccionData objDS, params SqlTransaction[] objTransaction)
        //{
        //    DataTable objDT = objDS;
        //    int intReturn = 0;
        //    try
        //    {
        //        foreach (DataRow objRow in objDT.Rows)
        //        {

        //            SqlParameter param0 = new SqlParameter(PLN_ID_PARAM, SqlDbType.Decimal);
        //            SqlParameter param1 = new SqlParameter(PLN_NOMBRE_PARAM, objRow[SigPlanAccionData.PLN_NOMBRE_FIELD]);
        //            SqlParameter param2 = new SqlParameter(PLN_CODIGO_BPIN_PARAM, objRow[SigPlanAccionData.PLN_CODIGO_BPIN_FIELD]);
        //            SqlParameter param3 = new SqlParameter(PLN_CODIGO_PRESUPUESTAL_PARAM, objRow[SigPlanAccionData.PLN_CODIGO_PRESUPUESTAL_FIELD]);
        //            SqlParameter param4 = new SqlParameter(PLN_VALOR_APROPIACION_PARAM, objRow[SigPlanAccionData.PLN_VALOR_APROPIACION_FIELD]);
        //            SqlParameter param5 = new SqlParameter(PLN_OBJETIVO_PARAM, objRow[SigPlanAccionData.PLN_OBJETIVO_FIELD]);
        //            SqlParameter param6 = new SqlParameter(PLN_DESCRIPCION_PARAM, objRow[SigPlanAccionData.PLN_DESCRIPCION_FIELD]);
        //            SqlParameter param7 = new SqlParameter(PLN_PROBLEMA_PARAM, objRow[SigPlanAccionData.PLN_PROBLEMA_FIELD]);
        //            SqlParameter param8 = new SqlParameter(DEP_ID_PARAM, objRow[SigPlanAccionData.DEP_ID_FIELD]);
        //            SqlParameter param9 = new SqlParameter(CLS_ID_PARAM, objRow[SigPlanAccionData.CLS_ID_FIELD]);
        //            SqlParameter param10 = new SqlParameter(PLN_ANO_PARAM, objRow[SigPlanAccionData.PLN_ANO_FIELD]);
        //            param0.Direction = ParameterDirection.Output;
        //            SqlParameter[] parameters = {param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, 
        //                                                 param10};
        //            if (objTransaction.Length == 0)
        //            {
        //                intReturn = SqlHelper.ExecuteNonQuery(CadenaConexion, CommandType.StoredProcedure,
        //                                                      "PAS_ADICIONAR_SIG_PLAN_ACCION", parameters);
        //            }
        //            else
        //            {
        //                intReturn = SqlHelper.ExecuteNonQuery(objTransaction[0], CommandType.StoredProcedure,
        //                                                      "PAS_ADICIONAR_SIG_PLAN_ACCION", parameters);
        //            }


        //        }

        //    }
        //    catch (SqlException sqlEx)
        //    {
        //        throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "Usuarios"), sqlEx);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", "Usuarios"), ex);
        //    }

        //    return intReturn;
        //}
        //public SigPlanAccionData ConsultarPlanAccionAnoDepIdEntidades(Decimal decPnlAno, String strDepId)
        //{
        //    SqlParameter param1 = decPnlAno == 0 ? new SqlParameter(PLN_ANO_PARAM, DBNull.Value) : new SqlParameter(PLN_ANO_PARAM, decPnlAno);
        //    SqlParameter param2 = new SqlParameter(DEP_ID_PARAM, strDepId);
        //    SqlParameter[] parameters = { param1, param2 };
        //    SigPlanAccionData objSigPlanAccionData = new SigPlanAccionData();
        //    Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataTable(CadenaConexion, CommandType.StoredProcedure, "PAS_CONSULTAR_BAS_DEPENDENCIAS_ENTIDAD", objSigPlanAccionData, parameters);
        //    return objSigPlanAccionData;
        //}

        //public SigPlanAccionData ConsultarPlanAccionAnoDepIdDependencias(Decimal decPnlAno, String strDepId)
        //{
        //    SqlParameter param1 = decPnlAno == 0 ? new SqlParameter(PLN_ANO_PARAM, DBNull.Value) : new SqlParameter(PLN_ANO_PARAM, decPnlAno);
        //    SqlParameter param2 = new SqlParameter(DEP_ID_PARAM, strDepId);
        //    SqlParameter[] parameters = { param1, param2 };
        //    SigPlanAccionData objSigPlanAccionData = new SigPlanAccionData();
        //    Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataTable(CadenaConexion, CommandType.StoredProcedure, "PAS_CONSULTAR_BAS_GRUPOS_DEPENDENCIAS", objSigPlanAccionData, parameters);
        //    return objSigPlanAccionData;
        //}

        //public SigPlanAccionData ConsultarPlanAccionPer_Id(String strPerId)
        //{
        //    //SqlParameter param1 = strPerId == 0 ? new SqlParameter(PLN_ANO_PARAM, DBNull.Value) : new SqlParameter(PLN_ANO_PARAM, decPnlAno);
        //    SqlParameter param1 = new SqlParameter(PER_ID_PARAM, strPerId);
        //    SqlParameter[] parameters = { param1};
        //    SigPlanAccionData objSigPlanAccionData = new SigPlanAccionData();
        //    Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataTable(CadenaConexion, CommandType.StoredProcedure, "PAS_CONSULTAR_PLAN_ACCION_PER_ID", objSigPlanAccionData, parameters);
        //    return objSigPlanAccionData;
        //}

        //public SigPlanAccionData ConsultarPlanAccionAnoDepIdGrupos(Decimal decPnlAno, String strDepId)
        //{
        //    SqlParameter param1 = new SqlParameter(PLN_ANO_PARAM, decPnlAno);
        //    SqlParameter param2 = new SqlParameter(DEP_ID_PARAM, strDepId);
        //    SqlParameter[] parameters = { param1, param2 };
        //    SigPlanAccionData objSigPlanAccionData = new SigPlanAccionData();
        //    Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataTable(CadenaConexion, CommandType.StoredProcedure, "PAS_CONSULTAR_BAS_GRUPOS", objSigPlanAccionData, parameters);
        //    return objSigPlanAccionData;
        //}

        //public int EliminarRubrosContransacciones(params string[] strIDs)
        //{

        //    int salida = 0;
        //    SqlConnection objConexion = new SqlConnection(CadenaConexion);
        //    objConexion.Open();
        //    SqlTransaction objTransaccion = objConexion.BeginTransaction();
        //    //SigPlanProgramaAdmPerfiles objSigPlanProgramaAdmPerfiles = new SigPlanProgramaAdmPerfiles(CadenaConexion);
        //    try
        //    {
        //        if (strIDs.Length > 0)
        //        {
        //            foreach (string strID in strIDs)
        //            {
        //                if (!string.IsNullOrEmpty(strID))
        //                {
        //                    //objSigPlanProgramaAdmPerfiles.EliminarSigPlanProgramaAdmPerfiles(Convert.ToInt32(strID), objTransaccion);
        //                    EliminarRubro(strID, objTransaccion);
        //                    salida = 1;

        //                }
        //            }
        //        }
        //        objTransaccion.Commit();
        //    }
        //    catch (Exception ex)
        //    {
        //        objTransaccion.Rollback();
        //        throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", GetType().FullName), ex);
        //    }
        //    finally
        //    {
        //        if (objConexion != null)
        //        {
        //            objConexion.Close();
        //        }

        //        if (objTransaccion != null)
        //        {
        //            objTransaccion.Dispose();
        //        }
        //        if (objConexion != null)
        //        {
        //            objConexion.Dispose();
        //        }
        //    }

        //    #region 2. Registra Auditoria
        //    try
        //    {
        //        // OJO ANDRES
        //        //RegistrarAuditoria();
        //    }
        //    catch (Exception ex)
        //    {
        //        // OJO ANDRES
        //        //AbortTransaction();
        //        throw new ApplicationExceptionManager(ex.Message, ex);
        //    }
        //    #endregion

        //    return salida;

        //}

        //public int EliminarRubro(string strID, params SqlTransaction[] objTransaction)
        //{
        //    int resultado;
        //    SqlParameter param1 = new SqlParameter(PLN_ID_PARAM, strID);
        //    SqlParameter[] parameters = new SqlParameter[] { param1 };
        //    if (objTransaction.Length == 0)
        //    {
        //        resultado = Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(CadenaConexion, CommandType.StoredProcedure,
        //                                              "PAS_ELIMINAR_SIG_PLAN_ACCION_PLN_ID", parameters);
        //    }
        //    else
        //    {
        //        resultado = Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(objTransaction[0], CommandType.StoredProcedure,
        //                                                "PAS_ELIMINAR_SIG_PLAN_ACCION_PLN_ID", parameters);
        //    }
        //    return resultado;
        //}
    }
}
